/*******************************************************************************
 * Copyright (c) 2010-2012 Nikita Zhiltsov.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Public License v3.0
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/gpl.html
 * 
 * Contributors:
 *     Nikita Zhiltsov - initial API and implementation
 *     Azat Khasanshin - implementation
 ******************************************************************************/
package ru.ksu.niimm.cll.mocassin.crawl.analyzer.relation;

import java.util.List;

import ru.ksu.niimm.cll.mocassin.crawl.analyzer.Reference;
import ru.ksu.niimm.cll.mocassin.crawl.analyzer.StructuralElement;
import edu.uci.ics.jung.graph.Graph;

/**
 * The analyzer extracts the relevant statistics information about the document
 * graph using well-known graph metrics
 * 
 * @author Nikita Zhiltsov
 * 
 */
public interface GraphTopologyAnalyzer {
    /**
     * Returns relation candidates (i.e. pairs of elements) with features
     * extracted
     * 
     * @param graph
     *            given structural graph
     * @returns a list of objects, each of which characterizes a relation
     *          candidate using relevant graph metrics
     */
    List<RelationFeatureInfo> extractCandidateFeatures(
	    Graph<StructuralElement, Reference> graph);
}
